package br.com.sistema.view;

import java.io.Serializable;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import br.com.sistema.entidade.Produto;
import br.com.sistema.util.Fachada;

@ManagedBean(name = "beanProduto")
@SessionScoped
public class ProdutoBean implements Serializable {

	private static final long serialVersionUID = 1L;
	
	private Produto produto = new Produto();
	private List<Produto> lista = null;
	private Boolean campoDesativado = true;

	public Boolean getCampoDesativado() {
		return campoDesativado;
	}

	public void setCampoDesativado(Boolean campoDesativado) {
		this.campoDesativado = campoDesativado;
	}

	public Produto getProduto() {
		return produto;
	}

	public void setProduto(Produto produto) {
		this.produto = produto;
	}

	public List<Produto> getLista() {
		if(lista == null){
			lista = Fachada.getInstancia().listarProduto();
		}
		return lista;
	}

	public void setLista(List<Produto> lista) {
		this.lista = lista;
	}

	public String salvar() {
		try {
			if (Fachada.getInstancia().salvarProduto(this.produto)) {
				this.produto = new Produto();
				this.lista = null;
				this.campoDesativado = true;
			}
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}
		return null;
	}

	public String remover(){
		Fachada.getInstancia().removerProduto(produto.getId());
		this.lista = null;
		this.produto = null;
		return null;
	}
	
	public void novoProduto() {
		this.produto = new Produto();
		this.campoDesativado = false;
	}

	public List<Produto> getListarProdutosMaisVendidos(){
		return Fachada.getInstancia().listarProdutosMaisVendidos();
	}
	
	public String formProduto() {
		if (this.produto != null) {
			if (this.produto.getId() != null && this.produto.getId() != 0) {
				this.campoDesativado = false;
			}
		}
		return "formProduto?faces-redirect=true";
	}

	public String formListaProduto() {
		return "formListaProduto?faces-redirect=true";
	}
	
	public String formListaProdutosMaisVendidos(){
		return "formListaProdutosMaisVendidos?faces-redirect=true";
	}
}
